Шаг 5 - Далее про Workbooks в Excel

В прошлый раз мы научились добавлять книги в коллекцию. Теперь научимся удалять и получать информацию о книгах. Так как книга ассоциируется с файлом, то и метод удаления книги из коллекции называется Close. Но для удаления необходимо получить доступ к элементу.

Sub Test()
	Application.Workbooks.Item(1).Close
End Sub

В таком варианте закроются все книги:

Sub Test()
	Application.Workbooks.Close
End Sub

Функция Close имеет ряд необязательных параметров. Вот они.

expression.Close(SaveChanges, FileName, RouteWorkbook)

Первый параметр SaveChanges типа BOOL. Если установить TRUE, сделанные изменения сохранятся, в противном случае - нет. Если параметр упускается, то при закрытии появляется диалоговое окно с вопросом о необходимости сохранения.

5_1.gif (2033 b)

Следующий параметр FileName необходим, когда идет вопрос о закрытии книги, не связанной еще с именем файла. Последний параметр связан с одновременной работой над книгой. Он типа BOOL.

Получить доступ к книгам в коллекции можно, используя метод Item():

Sub Test()
	MsgBox (Application.Workbooks.Item(1).Name)
	MsgBox (Application.Workbooks.Item("Test.xls").FullName)
End Sub

Как видите, доступ можно получить по индексации и по имени книги. Следует знать, что имя книги это имя файла, в котором он хранится. Получив доступ по индексу в первой строке, я узнал имя. А во второй - по имени получил доступ к свойствам объекта WorkBook и получил полное имя, название файла и путь, который и вывел на экран в виде сообщения.

Еще одно свойство - это создатель книги, и называется он Creator

Sub Test()
	If (Application.Workbooks.Creator = &H5843454C) Then
		MsgBox "Excel Creator"
	Else
		MsgBox "Not Excel Creator"
	End If
End Sub

С помощью Parent можно получить доступ к старшему объекту коллекции при выполнении кода, изложенного ниже, появится MS Excel, ну а Вы что подумали ? :-)

Sub Test()
	MsgBox (Application.Workbooks.Parent.Name)
End Sub
Hosted by uCoz